import _ from 'lodash'
import { queryListByModuleCode } from "@/api/apchain_app/dynamicParam/dynamicParam";
/***
 * 列表页混入类，抽出通用参数
 * 1.动态获取表格列中的字典一次性查询出来丢进一个字典对象中
 */
export const moduleExtendMixin = {
  data() {
    return {
      moduleCode: ''
    };
  },
  watch: {
    moduleCode: {
      handler(data) {
        console.log('data', data)
        this.reqModuleExtendParams(data)
      }
    }
  },
  methods: {
    reqModuleExtendParams(moduleCode) {
      console.log('reqModuleExtendParams',moduleCode)
      if(moduleCode) {
        queryListByModuleCode(moduleCode).then((res) => {
          let tempExtendColumns = res.result;
          if (tempExtendColumns && tempExtendColumns.length) {
            let dictCodeList = [];
            const extendColumns = []
            for (let item of tempExtendColumns) {
              if(!item)
                continue;
              if (item.isTableShow == 1) {
                extendColumns.push({
                  key: item.prop,
                  id: item.id,
                  prop: item.paramCode,
                  label: item.paramName,
                  dictCode: item.dictCode ? item.dictCode : '',
                  isExtend: true,
                  visible: true,
                  componentType: item.componentType,
                });
              }
              // 3 和 4 是选择框数据来自字典 ，提取字典进行加载
              if (
                item.componentType == 3 ||
                (item.componentType == 4 && item.dictCode)
              ) {
                if(Object.keys(this.dictMap).indexOf(item.dictCode) < 0) {
                  dictCodeList.push(item.dictCode)
                }
              }

              if(item.isSearch) {
                this.extendSearch.push(item);
              }
            }
            this.extendColumns = extendColumns;
            this.searchFormDictList.push(...dictCodeList)
          }
        });
      }
    }
  }
}
